<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\db;

class AdminUser extends AdminController
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        // 查询所有用户
        $alldata = db('admin_user')
            ->paginate(10);
        $data = $alldata->items();
        $page = $alldata->render();
//        dump($data);
        // 查询所有用户对应的角色
        $arr = Db::view(['qq_role'=>'qr'],['name'])
            ->view(['qq_user_role'=>'qur'],['rid'],'qur.rid = qr.id')
            ->view(['qq_admin_user'=>'qau'],['id'],'qau.id = qur.uid')
            ->select();
//        dump($arr);
        foreach($arr as $v){
            $userrole[$v['id']][] = $v['name'];
        }
//        dump($userrole);

//         把用户的角色信息塞入data
        foreach ($data as $k=>$v){
            $data[$k]['role'] = [];
            if(array_key_exists($v['id'],$userrole)){

//                dump($userrole[$v['id']]);
                $data[$k]['role'] = $userrole[$v['id']];
            }

        }
//        dump($data);
        return view('index',['data'=>$data,'page'=>$page]);

    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        return view('create');
    }


    public function createsave()
    {
        $post = input('post.');
//        dump($post);
        if(empty($post['userpass'])){
            $this->error('密码不能为空');
        }
        // 验证两次密码是否一致
        if($post['userpass'] != $post['reuserpass']){
            $this->error('两次密码不一致!');
        }else{
            //销毁确认的密码
            unset($post['reuserpass']);
            $post['userpass'] = md5($post['userpass']);
//            dump($post);
            $res = db('admin_user')
                ->insert($post);
            if($res == 1){
                $adminusercount = session('info.adminusercount')+1;
                session('info.adminusercount',$adminusercount);
                $this->success('添加用户成功','admin/Adminuser/index',null,1);
            }else{
                $this->error('添加用户失败');
            }
        }
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //这里处理分配权限后的保存逻辑
        $data = input('post.');
//        dump($data);die;
        $uid = $data['uid'];

        // 先删除用户的所有角色
        db('user_role')
            ->where('uid',$uid)
            ->delete();

        // 角色id为空不执行
        if(!empty($data['role'])){
            $role = $data['role'];
            foreach( $role as $k => $v){
                $arr = ['uid' => $uid,'rid' => $v];
                db('user_role')
                    ->insert($arr);
            }
        }

        $this->success('操作成功','admin/Adminuser/index',null,1);
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //        dump(session('userid'));
//        dump(session('userid'));

        // 这里加载分配角色模版

        // 查询所有角色
        $data = db('role')
            ->select();
//        dump($data);

        // 查询用户的角色
        $userrole = [];
        $arr2 = db('user_role')
            ->field('rid')
            ->where('uid',$id)
            ->select();
        foreach ($arr2 as $v){
            $userrole[] = $v['rid'];
        }

//        dump($userrole);
        return view('fenpei',['data'=>$data,'id'=>$id,'userrole'=>$userrole]);
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */


    public function edit($id)
    {
        //
    }


    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }

    public function changestatus()
    {
        $arr['status'] = input('post.status')==1?2:1;
        $id = input('post.id');
        $res = db('admin_user')
            ->where('id',$id)
            ->update($arr);
        if(!$res){
            $arr['status'] = input('post.status');
        }
        return $arr;
    }
}
